/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package familytree.struts.forms;


import familytree.persistencia.pojos.Nodo;
import java.util.ArrayList;
import java.util.Calendar;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
import org.apache.struts.util.LabelValueBean;
import org.apache.struts.validator.ValidatorForm;

/**
 *
 * @author Antonio
 */
public class ArbolInicioForm extends ValidatorForm {

    private Nodo nodo;
    private String diaNacimiento,mesNacimiento,anyoNacimiento;
    private String diaDefuncion, mesDefuncion,anyoDefuncion;
    private FormFile archivo;

    public FormFile getArchivo() {
        return archivo;
    }

    public void setArchivo(FormFile archivo) {
        this.archivo = archivo;
    }
    
    
    public String getAnyoDefuncion() {
        return anyoDefuncion;
    }

    public void setAnyoDefuncion(String anyoDefuncion) {
        this.anyoDefuncion = anyoDefuncion;
    }

    public String getDiaDefuncion() {
        return diaDefuncion;
    }

    public void setDiaDefuncion(String diaDefuncion) {
        this.diaDefuncion = diaDefuncion;
    }

    public String getMesDefuncion() {
        return mesDefuncion;
    }

    public void setMesDefuncion(String mesDefuncion) {
        this.mesDefuncion = mesDefuncion;
    }
    
    public String getAnyoNacimiento() {
        return anyoNacimiento;
    }

    public void setAnyoNacimiento(String anyoNacimiento) {
        this.anyoNacimiento = anyoNacimiento;
    }

    public String getDiaNacimiento() {
        return diaNacimiento;
    }

    public void setDiaNacimiento(String diaNacimiento) {
        this.diaNacimiento = diaNacimiento;
    }

    public String getMesNacimiento() {
        return mesNacimiento;
    }

    public void setMesNacimiento(String mesNacimiento) {
        this.mesNacimiento = mesNacimiento;
    }
    
    
    public Nodo getNodo() {
        return nodo;
    }

    public void setNodo(Nodo nodo) {
        this.nodo = nodo;
    }
    
    public ArbolInicioForm()
    {
        nodo = new Nodo();
    }
    
    @Override
    public void reset(ActionMapping arg0, HttpServletRequest arg1)
    {
       ArrayList arrayDias = new ArrayList();
       ArrayList arrayMeses = new ArrayList();
       ArrayList arrayAnios = new ArrayList();
       String s ="";
       
       for(int i = 1;i<=31;i++){
          s = new Integer(i).toString();
          arrayDias.add(new LabelValueBean(s, s));
       }
       for(int i = 1; i<=12; i++)
       {
          s = new Integer(i).toString();
          arrayMeses.add(new LabelValueBean(s, s));
       }
       
       Calendar cal = Calendar.getInstance();
       int anyoActual = cal.get(Calendar.YEAR);
       
       for(int i = anyoActual; i >= 1900; i--)
       {
          s = new Integer(i).toString();
          arrayAnios.add(new LabelValueBean(s, s));
       }
       
       arg1.setAttribute("dias", arrayDias);
       arg1.setAttribute("mes", arrayMeses);
       arg1.setAttribute("anyo", arrayAnios);
    }
            
    public Calendar getFechaNacimiento()
    {
        Calendar fechaNacimiento = creaFecha(anyoNacimiento, mesNacimiento, diaNacimiento);
        return fechaNacimiento;
    }
    
    public Calendar getFechaDefuncion()
    {
        Calendar fechaDefuncion = creaFecha(anyoDefuncion,mesDefuncion,diaDefuncion);
        return fechaDefuncion; 
    }
    
    private Calendar creaFecha(String anyo, String mes, String dia) {
        Calendar calendario = Calendar.getInstance();
        int year = Integer.valueOf(anyo);
        int month = Integer.valueOf(mes);
        int date = Integer.valueOf(dia);
        calendario.set(year, month, date);      
        return calendario;
    }

    @Override
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        
        String idPareja = request.getParameter("idPareja");
        if(idPareja != null)
        {
            request.setAttribute("idPareja", Long.valueOf(idPareja));
        }        
        return super.validate(mapping, request);
    }
    
    
}
